package com.platform.system.domain;

import java.math.BigDecimal;

import io.swagger.v3.oas.annotations.media.Schema;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.platform.common.annotation.Excel;
import com.platform.common.core.domain.BaseEntity;

/**
 * 订单对象 pro_order
 *
 * @author platform
 * @date 2025-02-23
 */
@Schema(name = "订单对象", description = "")
public class ProOrder extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 序号
     */
    @Schema(description = "序号", implementation = Long.class, requiredMode = Schema.RequiredMode.AUTO, example = "")
    private Long id;

    /**
     * 商家ID
     */
    @Excel(name = "商家ID")
    @Schema(description = "商家ID", implementation = Long.class, requiredMode = Schema.RequiredMode.AUTO, example = "")
    private Long merchanproId;

    /**
     * 商品ID
     */
    @Excel(name = "商品ID")
    @Schema(description = "商品ID", implementation = Long.class, requiredMode = Schema.RequiredMode.AUTO, example = "")
    private Long producproId;

    /**
     * 数量
     */
    @Excel(name = "数量")
    @Schema(description = "数量", implementation = Long.class, requiredMode = Schema.RequiredMode.AUTO, example = "")
    private Long count;

    /**
     * 总价
     */
    @Excel(name = "总价")
    @Schema(description = "总价", implementation = BigDecimal.class, requiredMode = Schema.RequiredMode.AUTO, example = "")
    private BigDecimal totalPrice;

    /**
     * 联系人
     */
    @Excel(name = "联系人")
    @Schema(description = "联系人", implementation = String.class, requiredMode = Schema.RequiredMode.AUTO, example = "")
    private String linkUser;

    /**
     * 联系电话
     */
    @Excel(name = "联系电话")
    @Schema(description = "联系电话", implementation = String.class, requiredMode = Schema.RequiredMode.AUTO, example = "")
    private String linkPhone;

    /**
     * 送货地址
     */
    @Excel(name = "送货地址")
    @Schema(description = "送货地址", implementation = String.class, requiredMode = Schema.RequiredMode.AUTO, example = "")
    private String linkAddress;

    /**
     * 状态,[0-待付款,1-待发货,2-待收货,3-已完成,4-已取消]
     */
    @Excel(name = "状态,[0-待付款,1-待发货,2-待收货,3-待评价,4-已完成,5-已取消]")
    @Schema(description = "状态,[0-待付款,1-待发货,2-待收货,3-待评价,4-已完成,5-已取消]", implementation = Integer.class, requiredMode = Schema.RequiredMode.AUTO, example = "")
    private Integer state;

    /**
     * 用户id
     */
    @Excel(name = "用户id")
    @Schema(description = "用户id", implementation = Long.class, requiredMode = Schema.RequiredMode.AUTO, example = "")
    private Long userId;

    /**
     * 联系电话
     */
    @Excel(name = "联系电话")
    @Schema(description = "购物车", implementation = String.class, requiredMode = Schema.RequiredMode.AUTO, example = "")
    private String carts;

    public String getCarts() {
        return carts;
    }

    public void setCarts(String carts) {
        this.carts = carts;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setMerchanproId(Long merchanproId) {
        this.merchanproId = merchanproId;
    }

    public Long getMerchanproId() {
        return merchanproId;
    }

    public void setProducproId(Long producproId) {
        this.producproId = producproId;
    }

    public Long getProducproId() {
        return producproId;
    }

    public void setCount(Long count) {
        this.count = count;
    }

    public Long getCount() {
        return count;
    }

    public void setTotalPrice(BigDecimal totalPrice) {
        this.totalPrice = totalPrice;
    }

    public BigDecimal getTotalPrice() {
        return totalPrice;
    }

    public void setLinkUser(String linkUser) {
        this.linkUser = linkUser;
    }

    public String getLinkUser() {
        return linkUser;
    }

    public void setLinkPhone(String linkPhone) {
        this.linkPhone = linkPhone;
    }

    public String getLinkPhone() {
        return linkPhone;
    }

    public void setLinkAddress(String linkAddress) {
        this.linkAddress = linkAddress;
    }

    public String getLinkAddress() {
        return linkAddress;
    }

    public void setState(Integer state) {
        this.state = state;
    }

    public Integer getState() {
        return state;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getUserId() {
        return userId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("merchanproId", getMerchanproId())
                .append("producproId", getProducproId())
                .append("count", getCount())
                .append("totalPrice", getTotalPrice())
                .append("linkUser", getLinkUser())
                .append("linkPhone", getLinkPhone())
                .append("linkAddress", getLinkAddress())
                .append("state", getState())
                .append("userId", getUserId())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
